// #ifndef VUE3
import Vue from 'vue'
import store from './store/index.js'
import App from './App'

import {
  $http
} from '@escook/request-miniprogram'
import './static/js/interceptor.js' // 引入拦截

// websocket基础请求路径
Vue.prototype.$websocketUrl = process.env.NODE_ENV === 'development' ? 'ws://localhost:8080/gonitis/webSocket/' :
  'wss://ybcmh.cn/ws/webSocket/'
// 设置静态图像路径
Vue.prototype.$staticUrl = process.env.NODE_ENV === 'development' ? 'https://ybcmh.cn/static/wximg/' :
  'https://ybcmh.cn/static/wximg'
// 基础请求路径
Vue.prototype.$baseUrl = process.env.NODE_ENV === 'development' ? 'http://localhost:8080' : 'https://ybcmh.cn/prod-api'
uni.$http = $http
$http.baseUrl = Vue.prototype.$baseUrl + '/wx'
Vue.prototype.$appid = 'wx7d618670ff7126f3'

// 请求开始之前做一些事情
$http.beforeRequest = function(options) {
  uni.showLoading({
    title: '数据加载中...',
  })
  // 为请求头添加身份认证字段
  const token = store.state.m_user.token;
  options.header = {
    // 字段的值可以直接从 vuex 中进行获取
    Authorization: 'Bearer ' + token,
  }
}

// 封装的展示消息提示的方法
uni.$showMsg = function(title = '数据加载失败！', duration = 1500) {
  uni.showToast({
    title,
    duration,
    icon: 'none',
  })
}

// 请求完成之后做一些事情
$http.afterRequest = function(options) {
  // 处理401逻辑 401直接跳转到登陆页面
  if (options.data.code === 401) {
    console.log('token过期');
    // store.commit('m_user/updateIsLogin', 0);
    store.commit('m_user/updateToken', "");
    uni.redirectTo({
      url: '/pages/login/login'
    })
  }
  uni.hideLoading()
}

Vue.config.productionTip = false

App.mpType = 'app'

const app = new Vue({
  ...App,
  // 2. 将 store 挂载到 Vue 实例上
  store,
})
app.$mount()
// #endif

// #ifdef VUE3
import {
  createSSRApp
} from 'vue'
import App from './App.vue'
export function createApp() {
  const app = createSSRApp(App)
  return {
    app
  }
}
// #endif